package com.softeem.tank;

import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;

/**
 * 坦克类，代表游戏中的坦克实体。
 */
public class    Tank {
    // 坦克的坐标
    private int x, y;
    // 坦克的移动速度
    private int dx, dy;
    // 坦克的图像
    private Image image;

    /**
     * 坦克的构造函数，初始化坦克的位置和图像。
     */
    public Tank() {
        // 加载坦克的图像
        ImageIcon ii = new ImageIcon("resources/tank.png");
        image = ii.getImage();
        // 设置坦克的初始位置
        x = 400;
        y = 300;
    }

    /**
     * 移动坦克。
     */
    public void move() {
        x += dx;
        y += dy;
    }

    /**
     * 获取坦克的x坐标。
     *
     * @return 坦克的x坐标
     */
    public int getX() {
        return x;
    }

    /**
     * 获取坦克的y坐标。
     *
     * @return 坦克的y坐标
     */
    public int getY() {
        return y;
    }

    /**
     * 获取坦克的图像。
     *
     * @return 坦克的图像
     */
    public Image getImage() {
        return image;
    }

    /**
     * 处理键盘按键事件，控制坦克的移动。
     *
     * @param e 键盘事件对象
     */
    public void keyPressed(KeyEvent e) {
        int key = e.getKeyCode();

        // 根据按键控制坦克的移动方向
        if (key == KeyEvent.VK_LEFT) {
            dx = -2;
        }

        if (key == KeyEvent.VK_RIGHT) {
            dx = 2;
        }

        if (key == KeyEvent.VK_UP) {
            dy = -2;
        }

        if (key == KeyEvent.VK_DOWN) {
            dy = 2;
        }
    }

    /**
     * 处理键盘键释放事件，停止坦克的移动。
     *
     * @param e 键盘事件对象
     */
    public void keyReleased(KeyEvent e) {
        int key = e.getKeyCode();

        // 当按键释放时，停止坦克的移动
        if (key == KeyEvent.VK_LEFT || key == KeyEvent.VK_RIGHT) {
            dx = 0;
        }

        if (key == KeyEvent.VK_UP || key == KeyEvent.VK_DOWN) {
            dy = 0;
        }
    }
}
